We are calling _loginScreenSessionActivated() even in cases where this is
not required. For example, there are cases where the Active property is
already `true` and properties like `IdleHint`, `IdleSinceHint` and
`IdleSinceHintMonotonic` change. In this cases _loginScreenSessionActivated()
is called and will reset the authPrompt when not necessary.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2411>
async _getGreeterSessionProxy() {
const loginManager = LoginManager.getLoginManager();
this._greeterSessionProxy = await loginManager.getCurrentSessionProxy();
- this._greeterSessionProxy?.connectObject('g-properties-changed', () => {
- if (this._greeterSessionProxy.Active)
+ this._greeterSessionProxy?.connectObject('g-properties-changed', (proxy, properties) => {
+ const activeChanged = !!properties.lookup_value('Active', null);
+ if (activeChanged && proxy.Active)
this._loginScreenSessionActivated();
}, this);
}